import { BaseQuery } from "@/types/common/response";

/**
 * 订单查询参数
 */
export interface OrderQuery extends BaseQuery {
  /** 订单编号 */
  orderCode?: string;
  /** 项目ID */
  projectId?: number;
  /** 供应商ID */
  supplierId?: number;
  /** 订单状态 */
  status?: string;
  /** 开始时间 */
  beginTime?: string;
  /** 结束时间 */
  endTime?: string;
}

/**
 * 订单视图对象
 */
export interface OrderVO {
  /** 订单ID */
  orderId: number;
  /** 订单编号 */
  orderCode: string;
  /** 项目ID */
  projectId: number;
  /** 项目名称 */
  projectName: string;
  /** 供应商ID */
  supplierId: number;
  /** 供应商名称 */
  supplierName: string;
  /** 开始日期 */
  startDate: string;
  /** 结束日期 */
  endDate: string;
  /** 结算周期 */
  settlementCycle: string;
  /** 结算周期名称 */
  settlementCycleName: string;
  /** 订单金额 */
  totalAmount: number;
  /** 状态（0进行中 1已完成 2已取消） */
  status: string;
  /** 状态名称 */
  statusName: string;
  /** 备注 */
  remark?: string;
  /** 创建时间 */
  createTime: string;
  /** 更新时间 */
  updateTime: string;
}

/**
 * 订单请求对象
 */
export interface OrderRequest {
  /** 订单ID */
  orderId?: number;
  /** 订单编号 */
  orderCode: string;
  /** 项目ID */
  projectId?: number;
  /** 供应商ID */
  supplierId?: number;
  /** 开始日期 */
  startDate?: string;
  /** 结束日期 */
  endDate?: string;
  /** 结算周期 */
  settlementCycle?: string;
  /** 订单状态 */
  status?: string;
  /** 订单总金额 */
  totalAmount?: number;
  /** 备注 */
  remark?: string;
}

/**
 * 订单数据传输对象
 * 此处使用type别名而非空接口，更加清晰明确
 */
export type OrderDTO = OrderVO;
